package cn.edu.nuc.fourth.services.interfaces;

import java.util.List;

import org.springframework.web.multipart.MultipartFile;

import cn.edu.nuc.fourth.dto.PageInfo;
import cn.edu.nuc.fourth.model.Aproject;
import cn.edu.nuc.fourth.model.Major;
import cn.edu.nuc.fourth.model.Project;
import cn.edu.nuc.fourth.model.School;
import cn.edu.nuc.fourth.model.SchoolMes;
import cn.edu.nuc.fourth.model.Student;
import cn.edu.nuc.fourth.model.Teacher;

/**
 * 填报系统
 * 
 * @author 57681
 *
 */
public interface FillingService {

	/**
	 * 提交后的不许填报
	 * 
	 * @param sdate
	 * @return
	 */
	public School noAddSchool(String userid);

	/**
	 * 学校基本条件填报 办学条件填报
	 * 
	 * @param school
	 * @return
	 */
	public Integer schoolAdd(School school);

	/**
	 * 展示列表
	 * 
	 * @param userid
	 * @return
	 */
	public PageInfo schoolList(Integer userid, Integer current);

	/**
	 * 根据sid查询办学
	 * 
	 * @param sid
	 * @return
	 */
	public School oneSchool(Integer sid);

	/**
	 * 修改
	 * 
	 * @return
	 */
	public School schoolEdit(School school);

	/**
	 * 删除
	 * 
	 * @param sid
	 * @return
	 */
	public Integer schoolDelete(Integer sid);

	/**
	 * 实现完整填报 不可修改
	 * 
	 * @return
	 */
	public School noeditSchool(Integer sid, Integer state);

	// 专业课程类

	/**
	 * 专业填报
	 * 
	 * @param major
	 * @return
	 */
	public Integer majorAdd(Major major);

	/**
	 * 专业分页
	 * 
	 * @param userid
	 * @param current
	 * @return
	 */
	public PageInfo majorList(Integer userid, Integer current);

	/**
	 * 初始化一条数据
	 * 
	 * @param majorid
	 * @return
	 */
	public Major oneMajor(Integer majorid);

	/**
	 * 专业填报过后不能修改
	 * 
	 * @param userid
	 * @return
	 */
	public Major noAddMajor(String userid);

	/**
	 * 修改
	 * 
	 * @param major
	 * @return
	 */
	public Major majorEdit(Major major);

	/**
	 * 专业提交后不可修改
	 * 
	 * @param majorid
	 * @param state
	 * @return
	 */
	public Major noeditMajor(Integer majorid, Integer state);

	/**
	 * 删除
	 * 
	 * @param majorid
	 * @return
	 */
	public Integer deleteMajor(Integer majorid);

	/**
	 * 项目填报
	 * 
	 * @return
	 */
	public Integer projectadd(MultipartFile main, MultipartFile province, MultipartFile city, MultipartFile onther,
			Project projects, String path);

	/**
	 * 初始化下载列表
	 * 
	 * @return
	 */
	public Aproject projectlist();

	/**
	 * 根据年份查询项目填报记录
	 * 
	 * @return
	 */
	public List<Project> dateprojectlist(String userid, String date);

	/**
	 * 删除一条项目记录
	 * 
	 * @return
	 */
	public List<Project> deleteproject(Integer projectid, String userid, String date);

	/**
	 * 在对项目填报之后的修改 单个项目上传
	 * 
	 * @return
	 */
	public List<Project> oneupload(MultipartFile file, String path, Project project);

	/**
	 * 保存后项目不可修改
	 * 
	 * @return
	 */
	public List<Project> noeditproject(String userid, String date);

	/**
	 * 生成学校基本情况报表
	 * 
	 * @param userid
	 * @return
	 */
	public SchoolMes echart(Integer userid);

	/// 这里以下是教师信息填报

	/**
	 * 学生信息填报
	 * 
	 * @param student
	 * @return
	 */
	public Integer teacheradd(Teacher teacher);

	/**
	 * 学生信息分页
	 * 
	 * @param userid
	 * @param current
	 * @return
	 */
	public PageInfo teacherlist(Integer userid, Integer current);

	/**
	 * 学生信息保存修改
	 * 
	 * @param student
	 * @return
	 */

	public Student teacheredit(Teacher teacher);

	/**
	 * 初始化一条学生记录
	 * 
	 * @return
	 */
	public Student oneteacher(Integer teacherid);

	/**
	 * 
	 * @param studentid
	 * @param state
	 * @return
	 */
	public Student noeditteacher(Integer teacherid, Integer state);

	/**
	 * 填报过后无法再填报
	 * 
	 * @param userid
	 * @return
	 */
	public Student noAddTeacher(Integer userid);
	///这一下是学生信息填报
	
	/**
	 * 学生信息填报
	 * 
	 * @param student
	 * @return
	 */
	public Integer studentadd(Student student);

	/**
	 * 学生信息分页
	 * 
	 * @param userid
	 * @param current
	 * @return
	 */
	public PageInfo studentlist(Integer userid, Integer current);

	/**
	 * 学生信息保存修改
	 * 
	 * @param student
	 * @return
	 */

	public Student studentedit(Student student);

	/**
	 * 初始化一条学生记录
	 * 
	 * @return
	 */
	public Student onestudent(Integer studentid);

	/**
	 * 
	 * @param studentid
	 * @param state
	 * @return
	 */
	public Student noeditstudent(Integer studentid, Integer state);

	/**
	 * 填报过后无法再填报
	 * 
	 * @param userid
	 * @return
	 */
	public Student noAddStudent(Integer userid);
	
	

}
